﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using AlgoritimoGenetico.ambiente;
using AlgoritimoGenetico.dados;
using AlgoritimoGenetico;
using System.Windows.Forms;
using AlgoritimoGenetico.utils;

namespace Testes
{
    class TesteGeradorPopulacaoAleatoria
    {
        static void Main2(string[] args)
        {
            List<byte> configuracaoUsuario = new List<byte>(25);
            int o = 3;

            switch (o)
            {
                case 1:
                    configuracaoUsuario = new List<byte> { 1, 0, 1, 0, 1, 1, 1, 0, 0, 0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0 };
                    break;
                case 2:
                    // Gerando aleatoriamente uma configuracao de usuário
                    for (int i = 0; i < 25; i++)
                    {
                        configuracaoUsuario.Add
                            (
                                (byte)(Math.Abs(Utils.Rand.Next()) % 2)
                            );
                    }
                    break;
                case 3:
                    configuracaoUsuario = new List<byte> { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 };
                    break;
            }
            try
            {
                Ambiente amb = new Ambiente(
                    50, // Tamanho da população
                    1000, // Epocas
                    0.8, // Taxa de Cruzamento
                    0.3, // Taxa de Mutação
                    0.7, // Taxa de Elitismo
                    configuracaoUsuario, // Configuração do Usuário
                    new DateTime(2011, 6, 1)
                    );

                amb.Run();

                //Console.Read();
                //Console.WriteLine(amb.ToString());
                //Console.ReadKey();
            }
            catch (Exception e)
            {
                MessageBox.Show(e.Message);
            }
        }
    }
}